<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<!-- <script src="../../5.jQuery/jquery2107/Swiper@4.0.7/dist/css/swiper.css"></script> -->
<!-- <script src="../../5.jQuery/jquery2107/Swiper@4.0.7/dist/js/swiper.js"></script> -->

<body>
    <!-- 
        npm (Node Package Manager 即node包管理器)
        node安装之后，自动就安装npm

        在终端进行npm操作
        终端（terminal）的打开方式
        ①在当前项目下 右击 在集成终端中打开
        ②快捷键 ctrl+波浪号

        npm init 初始化项目的package.json文件
        npm init -y 一步到位，生成package.json

        命名不要出现中文、不要出现大写字符

        npm install 包名  将包下载到生产依赖 dependencies

        npm i 将所有在package.json中记录的包全部自动下载下来

        package-lock.json 作用
        自动生成
        包与它的依赖包之间的关联
        例如我们写京东页面的轮播  ----借助---》swiper----》dom7 ssr-window
        package-lock.json 记录了项目中包与它的依赖包的关系

        package-lock.json不是一直有的 npm更新到5.0版本后添加的功能


        当没有package-lock.json  先package.json下载swiper 内部去读取swiper包的package.json 需要dom7 ssr-window
        当package-lock.json   先去package.json,package-lock.json(告诉swiper依赖dom7 srr-window),如果网络速度允许，一起下载了，下载速度就会快



        一个成型的项目他会有成千上万个外联各种各样的文件，当文件过多就不好管理，提供了npm 管理这些文件，管理这些文件之前，需要先下载这些文件
        需要一个文件记录下载哪些文件，以及这些文件关联的文件
        package.json  记录我们下载的哪些文件
        package-lock.json  记录我们下载的那些文件的关联文件


        npm init 或者 npm init -y 自动生成了package.json

        package.json记录了我们下载的swiper  
        npm install swiper -S  dependencies

        自动生成了 package-lock.json  自动生成 
        记录我们下载的那些文件的关联文件

        npm install 包名 -S    记录到dependencies   等同 npm install --save 包名  npm i -S 包名
        npm install 包名 -D    记录到devDependencies 等同 npm install --save-dev 包名

         package-lock.json 自动生成，自动进行记录
        swiper依赖 dom7  ssr-window
        echarts依赖 tslib zrender
 

        项目为了协同开发  git进行管理  忽略文件

        npm i 把package.json中的所有记录着的包，全部下载下来
        
        这个过程
        npm i（全写 npm install）  从package.json 查找记录在册的包  如果有package-lock.json  有关联的包 ，一块进行下载

        npm i  从package.json 查找记录在册的包  如果没有package-lock.json  先去下载package.json中记录的包，去包的内部查找该包依赖的包，查询到以后进行下载

        有package-lock.json 下载的时候直接下载，速度较快
        npm5.0版本之后就添加了这文件，是自动添加
        借鉴了yarn


        删除包
        npm remove 包名  (npm r 包名)

        卸载
        npm uninstall 包名

        ctrl+C 终止掉  重新下载  
        清缓存
        npm cache clean --force

        npm i卡死  ctrl+C 终止  把node_modules全部删除，重新下载

        npm install -g 包名安装工具一类的包 只要不删除就装一次即可

        cnpm是淘宝对国外npm服务器的一个完整镜像版本，淘宝npm镜像
        用同npm一样，把指令中的npm替换为cnpm即可  
        如何安装cnpm
        npm install -g cnpm --registry=https://registry.npm.taobao.org


        不管是npm 还是cnpm 都是包管理 

        如何下载指定版本的包 npm i -S/D 包名@版本号
        

        npm  cnpm
        yarn cyarn

        yarn是FaceBook开源的新的包管理器，可以用来替代npm
        特点
        有缓存
        没有自己仓库地址，使用的是npm仓库地址


        安装yarn
        npm install yarn -g
        
        yarn -v查看版本号
        yarn init 初始化package.json 不能有中文不能有大写字符
        yarn add 包名 dependencies中
        yarn add 包名 -dev devDependencies

        yarn add global 包名 全局安装
        yarn remove 包名  删除指定包名

        要下载package.json中的所有包
        yarn 或者yarn install

        yarn引用npm仓库 yarn的淘宝镜像 cyarn
        yarn如何使用cyarn即如何使用 ，换成cyarn即可
        如何安装cyarn
        npm install cyarn -g --registry "https://registry.npm.taobao.org" 

        查看版本号时 cyarn --version

     -->
</body>

</html>